SV中的clocking时钟块 您所在的位置:网站首页 class period什么意思 SV中的clocking时钟块

SV中的clocking时钟块

2023-12-29 02:01| 来源: 网络整理| 查看: 265

采样时发生竞争(delta cycle的存在),会导致采样数据错误。为了避免在RTL仿真中发生信号竞争的问题,建议通过非阻塞赋值或者特定的信号延迟来解决同步问题。这里我们介绍使用clocking时钟块来决定信号的驱动和采样的方式。

delta cycle的存在问题

在RTL仿真时,由于无法确定具体电路的延迟时间,默认情况下时钟驱动电路时会添加一个**无限最小的时间(delta cycle)**的延迟,这个延迟要比最小时间单位精度还要小(可以理解成远小于1ps)。 由于各种可能性,clk与被采样数据之间如果只存在若干个delta-cycle的延迟,那么采样就会出问题。

采用clocking时钟块

clocking块基于时钟周期对信号进行驱动或者采样的方式,可以使testbench准确及时地对信号驱动或采样,消除信号竞争的问题。

clocking bus@(posedge clk); default input #2ns output #2ns //在clk上升沿的前2ns对其进行输入采样,在事件的后2ns进行输出驱动 endclocking

一般在接口中定义clocking块,如下:

interface chnl_intf(input clk, input rstn); logic [31:0] ch_data; logic ch_valid; logic ch_ready; logic [ 5:0] ch_margin; // 定义时钟块 clocking drv_ck @(posedge clk); //采样时间 default input #1ns output #1ns; //声明变量方向 output ch_data, ch_valid; input ch_ready, ch_margin; endclocking endinterface


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有